Redundant Array of Independent (or Inexpensive) Disks (RAID) is contemporarily used as an umbrella term for computer data storage configurations that divide user data and redundancy information among multiple hard disk drives in a disk array. Redundancy information enables the reconstruction of contents of a failed disk, with or without taking the storage system offline. Redundancy information may be, for example, a mirror copy of the user data (e.g., in RAID 1) or parity (e.g., in RAID 5).
Mirroring can be prohibitively costly in some scenarios since both the data and its duplicate are stored, thereby calling for twice the storage capacity. Stated another way, a mirroring configuration incurs a storage capacity overhead for redundancy of at least 100%. To provide a system that incurs a lower storage capacity overhead for redundancy, parity is sometimes implemented instead.
In traditional RAID (i.e., RAID without parity declustering), when a disk in the disk array fails, all (or nearly all, for traditional RAID 6) of the surviving disks in the array are read during a reconstruction/recovery of a single failed disk. If the system is not or cannot be taken offline during reconstruction, user throughput during that time is reduced, and the surviving disks bear an additional load being read to reconstruct the failed disk's content. The additional load on the surviving disks during an on-line recovery may slow down the recovery and thereby increase the time needed to perform reconstruction of the failed disk's content.